namespace EyeOpen.Domain
{
	using System;

	public abstract class Entity<T>
		: IEntity
		where T : struct, IComparable<T>
	{
		public T Id { get; set; }

		IComparable IEntity.Id
		{
			get
			{
				return (IComparable)Id;
			}

			set
			{
				Id = (T)value;
			}
		}
	}
}